const MongoClient = require('mongodb').MongoClient

// 设置地址
const url = 'mongodb://localhost:27017'
// 数据库的名字
const dbName = 'myblog'

MongoClient.connect(
    url,
    {
        // 配置
    },
    (err, client) => {
        if (err) {
            console.error('mongodb connect error', err)
            return
        }

        // 没有报错，说明连接成功
        console.log('mongodb connect success')

        // 切换到数据库 (use myblog)
        const db = client.db(dbName)

        // 数据库 -> 集合（blogs users) -> 文档
        // 使用集合
        const usersCollection = db.collection('users')

        // 新增数据
        usersCollection.insertOne({
            username: 'demonlb',
            password: 'abc',
            realname: '肉饼'
        }, (err, result) => {
            if (err) {
                console.error('users insert error', err)
                return
            }

            console.log(result)
            client.close()
        })

        // 修改数据
        usersCollection.updateOne(
            { username: 'lisi' },  // 查询条件
            { $set: { realname: '李四' } }, // 修改内容，注意有 $set
            (err, result) => {
                if (err) {
                    console.error('users update error', err)
                    return
                }
                console.log(result)
                client.close()
            }
        )

        // 删除数据
        usersCollection.deleteOne(
            {a: 101},
            (err, result => {
                if (err) {
                    console.error('users delete error', err)
                    return
                }

                console.log(result === 'undefined')
                client.close()
            })
        )

        // 查询数据
        usersCollection.find().toArray((err, result) => {
            if (err) {
                console.error('users find error', err)
                return
            }

            console.log(result)

            // 关闭连接
            // 正式项目不关连接
            client.close()
        })
    }
)